using System;
using Newtonsoft.Json;

namespace FBGraph.Models
{
    /// <summary>Represents the <see cref="User" /> or <see cref="Page" /> that created an Graph API object</summary>
    public partial class From
    {
        /// <summary>The name of the <see cref="User" /> or <see cref="Page" /> that created an Graph API object</summary>
        [JsonPropertyAttribute("name")]
        public String Name { get; set; }
        
        /// <summary>The Graph API id of the <see cref="User" /> or <see cref="Page" /> that created an Graph API object</summary>
        [JsonPropertyAttribute("id")]
        public Int64 Id { get; set; }
        
        /// <summary>For Graph API objects that were created by a <see cref="Page" />, the category of <see cref="Page" /> that created the object</summary>
        [JsonPropertyAttribute("category")]
        public String Category { get; set; }
        
        /// <summary>For Graph API objects that were created by an <see cref="Event" />, the start time of the event</summary>
        [JsonPropertyAttribute("start_time")]
        public DateTime StartTime { get; set; }
        
        /// <summary>For Graph API objects that were created by an <see cref="Event" />, the end time of the event</summary>
        [JsonPropertyAttribute("end_time")]
        public DateTime EndTime { get; set; }
        
        /// <summary>For Graph API objects that were created by an <see cref="Event" />, the location of the event</summary>
        [JsonPropertyAttribute("location")]
        public String Location { get; set; }
        
        /// <summary>For Graph API objects that were created by an <see cref="Event" />, the rsvp status of the current user</summary><remarks>The summary is an assumption and needs clarification from Facebook.</remarks>
        [JsonPropertyAttribute("rsvp_status")]
        public Object RsvpStatus { get; set; }
    }
}